﻿using System;
using System.ComponentModel.DataAnnotations;
using Tesla.Validador;
using Rendiciones.Logica.Enumeradores;

namespace Rendiciones.Logica.Modelos.Validaciones
{
    internal class DebeSeleccionarAreaUsuario : ValidationAttribute
    {
        protected override ValidationResult IsValid(object value, ValidationContext validationContext)
        {
            var usuario = validationContext.ObjectInstance as Usuario;
            if (usuario == null)
                throw new ValidationException("La validación no es compatible con el modelo que esta utilizando");

            return !usuario.EsAdministrador && usuario.AreaUsuario.Equals(EAreaUsuario.Ninguno) ?
                new UsefullValidationResult(new[] { validationContext.MemberName, "Proyectos", "Contabilidad", "Tesoreria" }, EValidationResolution.Error, ErrorMessage) :
                new UsefullValidationResult(new[] { validationContext.MemberName, "Proyectos", "Contabilidad", "Tesoreria" }, EValidationResolution.Success);
        }
    }
}